<?php
/*
    * 名称: 数据库链接类
    * 介绍: 集数据库链接与分布显示
    * 作者: boychenney <452649510@qq.com>
    * 创建时间: 2011年7年21日
    * 最后修改: 2011年7年21日
   */
require('fengye.class.php');	
class mysql
{
	private $_link;		//连接的ID号
	
	//构造函数,连接并选择数据库
	public function __construct($dbname='roombook',$dbhost='localhost',$dbuser='bradden',$dbpassword='466123',$charset="utf8")
	{
		$this->_link=mysql_connect($dbhost,$dbuser,$dbpassword,true); 
		$this->_link or $this->errmsg('无法连接MYSQL服务器：');//是否连接成功
		if($this->version()>'4.1')
			$this->query('set names '.$charset);			//设置数据库编码
		
		//打开数据库
		mysql_select_db($dbname,$this->_link)or $this->errmsg('无法连接数据库'.$dbname.':');
		
	}
	
	//数据库析构函数
	public function __destruct()
	{
		$this->close();
	}
	
	//关闭数据库的链接
	public function close(){ mysql_close($this->_link);}

	//错误信息的处理
	public function errmsg($msg)
	{
            $message  = '<strong>一个MySQL错误发生！</strong><br />'; 
            $message .= '<strong>错误号：</strong>'. $this->_link .'<br />'; 
            $message .= '<strong>错误描述：</strong>'. $msg . mysql_error($this->_link) .'<br />'; 
            $message .= '<strong>错误时间：</strong>'. date('Y-m-d H:i:s').'<br />'; 
            exit($message); 	//返回信息并退出
	}
	
	
	//返回根据从结果集中生成的数组
	//MYSQL_BOTH,如同 mysql_fetch_array()
	//MYSQL_ASSOC,如同 mysql_fetch_assoc()
	//MYSQL_NUM,如同 mysql_fetch_row()
	public function fetch_array($result,$type=MYSQL_BOTH)
	{
		return mysql_fetch_array($result,$type);
	}
	
	function getip() { 

            if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) { 

                $ip = getenv("HTTP_CLIENT_IP"); 
}elseif(getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) { 

                $ip = getenv("HTTP_X_FORWARDED_FOR"); 

            }elseif(getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) { 

                $ip = getenv("REMOTE_ADDR"); 
}elseif(isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) {                 $ip = "unknown"; 

 

                $ip = $_SERVER['REMOTE_ADDR']; 

            }else{ 

            } 

            return ($ip); 

        } 

	
	//返回连接的ID号
	public function linkID()
	{
		return $this->_link;
	}
	
	
	//执行数据库操作
	public function query($sql)
	{
		$result=mysql_query($sql);
		$result or $this->errmsg('执行SQL语言错误：');
		return $result;
	}
	
	
	//数据库数据的分页显示
	//total表示有多少页
	//pre_num表示每页显示多少条信息
	//mode是显示样式，有1－4种可以显示	
	public function multiPageShow($total,$pre_num)
	{
		$page=new page(array('total'=>$total,'perpage'=>$pre_num));
		return $page;
	}	
	
	
	//返回数据库版本号
	public function version()
	{
			return mysql_get_server_info($this->_link);
	}
	
}
?>